package com.mt.restaurant.service.sale;

import com.mt.common.core.web.base.PageDTO;
import com.mt.common.core.web.base.PageResultDTO;
import com.mt.restaurant.dto.sale.MenuMaterialRelationShipHandleDto;
import com.mt.restaurant.entity.sale.MenuMaterialRelationShip;

import java.util.List;

public interface MenuMaterialRelationShipService {
    /**
     * 根据分页参数查询菜谱材料关系集合
     *
     * @param pageDTO 分页条件
     */
    public PageResultDTO findMenuMaterialRelationShips(PageDTO pageDTO);

    /**
     * 查询全部菜谱材料关系集合
     *
     */
    public List<MenuMaterialRelationShip> findAllMenuMaterialRelationShips();

    /**
     * 根据名称查询菜谱材料关系集合(只提取ID 和 Name)
     *
     * @param menuMaterialRelationShipName 名称
     */
    public List<MenuMaterialRelationShip> findMenuMaterialRelationShipsWithIdNameByName(String menuMaterialRelationShipName);

    /**
     * 查询所有菜谱材料关系集合(只提取ID 和 Name)
     *
     */
    public List<MenuMaterialRelationShip> findAllMenuMaterialRelationShipsWithIdName();

    /**
     * 根据ID查询指定的菜谱材料关系(只提取ID 和 Name)
     *
     * @param menuMaterialRelationShipId Id
     */
    public MenuMaterialRelationShip findMenuMaterialRelationShipsWithIdNameById(Long menuMaterialRelationShipId);

    /**
     * 根据ID查询指定的菜谱材料关系
     *
     * @param menuMaterialRelationShipId Id
     */
    public MenuMaterialRelationShip findMenuMaterialRelationShip(Long menuMaterialRelationShipId);

    /**
     * 根据ID查询指定的菜谱材料关系(包含外键)
     *
     * @param menuMaterialRelationShipId Id
     */
    public MenuMaterialRelationShip findMenuMaterialRelationShipWithForeignName(Long menuMaterialRelationShipId);

    /**
     * 新增菜谱材料关系
     *
     * @param menuMaterialRelationShip 实体对象
     */
    public MenuMaterialRelationShip saveMenuMaterialRelationShip(MenuMaterialRelationShip menuMaterialRelationShip);

    /**
     * 更新菜谱材料关系
     *
     * @param menuMaterialRelationShip 实体对象
     */
    public MenuMaterialRelationShip updateMenuMaterialRelationShip(MenuMaterialRelationShip menuMaterialRelationShip);

    /**
     * 根据ID删除菜谱材料关系
     *
     * @param menuMaterialRelationShipId ID
     */
    public void deleteMenuMaterialRelationShip(Long menuMaterialRelationShipId);
    /*
批量插入
 */
    void batchSave(List<MenuMaterialRelationShip> menuMaterialRelationShips);

    void batchHandle(MenuMaterialRelationShipHandleDto menuMaterialRelationShipHandleDto);
}
